package com.imooc.mapper;

import com.imooc.pojo.VO.ItemCommentVO;
import com.imooc.pojo.VO.SearchItemVO;
import com.imooc.pojo.VO.ShopcartVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author lihongyu
 * @CreateTime 2021-10-13 16:41
 * @Description 商品自定义数据访问接口
 */
public interface ItemsMapperCustom {

    /**
     * 获取商品评价列表
     *
     * @param paramMap 参数对象
     * @return 商品评价列表
     */
    List<ItemCommentVO> getItemsCommentList(Map<String, Object> paramMap);

    /**
     * 搜索商品列表
     *
     * @param paramMap 参数实体
     * @return 商品列表
     */
    List<SearchItemVO> searchItemsList(Map<String, Object> paramMap);

    /**
     * 根据分类id查询商品列表
     *
     * @param paramMap 参数对象
     * @return 商品列表
     */
    List<SearchItemVO> searchItemsListByCatId(Map<String, Object> paramMap);

    /**
     * 根据商品规格id列表获取商品信息列表
     *
     * @param specIdsList 商品规格id列表
     * @return 最新商品信息列表
     */
    List<ShopcartVO> queryItemsBySpecIds(List<String> specIdsList);

    /**
     * 扣减商品规格中的库存信息
     *
     * @param itemSpecId 商品规格id
     * @param buyCounts  购买数量
     * @return 数据库受影响的行数
     */
    int decreaseItemSpecStock(@Param("itemSpecId") String itemSpecId, @Param("buyCounts") int buyCounts);
}
